//
//  MainTabBar.swift
//  SinaWeibo25
//
//  Created by David on 16/3/5.
//  Copyright © 2016年 itcast. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {

//    init() {
//        super.init(frame: CGRectZero)
//    }
    
    //父类有这个方法 子类需要做其他的操作 需要重写父类的方法 
    override init(frame: CGRect) {
        
        super.init(frame: frame)
        addSubview(plusBtn)
    }

    //从xib / sb中加载视图控件的时候会调用这个方法
    //在swift中 如果实现了默认的构造函数 编译器会认为该控件只支持手写代码创建
    //如果该视图从xib中加载 程序会崩溃
    required init?(coder aDecoder: NSCoder) {
        //fatal(致命的)  默认实现报错  可以注销该默认报错的代码 让当前控件支持从xib / sb中加载
//        fatalError("init(coder:) has not been implemented")
        super.init(coder: aDecoder)
    }
 
    //自定义tabbar 需要将之前的每一个 tabbarbutton 的大小减小 并且将中间位置空出来
    //addSubView
    //子视图的frame 发生了变化
    //一般不建议在layoutsubViews中添加子视图
    override func layoutSubviews() {
        super.layoutSubviews()
        //调式打印
        //UITabBarButton 是私有类 
        
        let w = UIScreen.mainScreen().bounds.width / 5
        let h = self.bounds.height
        let rect = CGRect(x: 0, y: 0, width: w, height: h)
        
        //定义一个递增的索引
        var index: CGFloat = 0
        for subView in subviews {
            if subView.isKindOfClass(NSClassFromString("UITabBarButton")!) {
//                print(subView)
                
                //修改subView的frame
                subView.frame = CGRectOffset(rect, index * w, 0)
//                if index == 1 {
//                    //多加一次
//                    index++
//                }
//                index++
                index += (index == 1 ? 2 : 1)
            }
        }
        
        //添加子视图
        //只添加一个视图
//        addSubview(plusBtn)
//        会添加两个视图
//        let btn = factoryBtn()
        addSubview(plusBtn)
        plusBtn.frame = CGRectOffset(rect, 2 * w, 0)
//        plusBtn.frame = CGRectOffset(rect, 2 * w, -20)
//        bringSubviewToFront(plusBtn)
        
    }
    
    
//    private func factoryBtn() -> UIButton {
//        let btn = UIButton()
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
//        //自适应大小
//        btn.sizeToFit()
//        return btn
//    }
    
    
    //MARK: 懒加载子视图
    lazy var plusBtn: UIButton = UIFactory.buttonWithImage("tabbar_compose_icon_add", backImageName: "tabbar_compose_button")
}
